<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.20.1: https://docutils.sourceforge.io/" />
<title>Installing Xapian</title>
<style type="text/css">

/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
:Copyright: This stylesheet has been placed in the public domain.

Default cascading style sheet for the HTML output of Docutils.

See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/

/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
  border: 0 }

table.borderless td, table.borderless th {
  /* Override padding for "table.docutils td" with "! important".
     The right padding separates the table cells. */
  padding: 0 0.5em 0 0 ! important }

.first {
  /* Override more specific margin styles with "! important". */
  margin-top: 0 ! important }

.last, .with-subtitle {
  margin-bottom: 0 ! important }

.hidden {
  display: none }

.subscript {
  vertical-align: sub;
  font-size: smaller }

.superscript {
  vertical-align: super;
  font-size: smaller }

a.toc-backref {
  text-decoration: none ;
  color: black }

blockquote.epigraph {
  margin: 2em 5em ; }

dl.docutils dd {
  margin-bottom: 0.5em }

object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
  overflow: hidden;
}

/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
  font-weight: bold }
*/

div.abstract {
  margin: 2em 5em }

div.abstract p.topic-title {
  font-weight: bold ;
  text-align: center }

div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
  margin: 2em ;
  border: medium outset ;
  padding: 1em }

div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
  font-weight: bold ;
  font-family: sans-serif }

div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
  color: red ;
  font-weight: bold ;
  font-family: sans-serif }

/* Uncomment (and remove this text!) to get reduced vertical space in
   compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
  margin-bottom: 0.5em }

div.compound .compound-last, div.compound .compound-middle {
  margin-top: 0.5em }
*/

div.dedication {
  margin: 2em 5em ;
  text-align: center ;
  font-style: italic }

div.dedication p.topic-title {
  font-weight: bold ;
  font-style: normal }

div.figure {
  margin-left: 2em ;
  margin-right: 2em }

div.footer, div.header {
  clear: both;
  font-size: smaller }

div.line-block {
  display: block ;
  margin-top: 1em ;
  margin-bottom: 1em }

div.line-block div.line-block {
  margin-top: 0 ;
  margin-bottom: 0 ;
  margin-left: 1.5em }

div.sidebar {
  margin: 0 0 0.5em 1em ;
  border: medium outset ;
  padding: 1em ;
  background-color: #ffffee ;
  width: 40% ;
  float: right ;
  clear: right }

div.sidebar p.rubric {
  font-family: sans-serif ;
  font-size: medium }

div.system-messages {
  margin: 5em }

div.system-messages h1 {
  color: red }

div.system-message {
  border: medium outset ;
  padding: 1em }

div.system-message p.system-message-title {
  color: red ;
  font-weight: bold }

div.topic {
  margin: 2em }

h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
  margin-top: 0.4em }

h1.title {
  text-align: center }

h2.subtitle {
  text-align: center }

hr.docutils {
  width: 75% }

img.align-left, .figure.align-left, object.align-left, table.align-left {
  clear: left ;
  float: left ;
  margin-right: 1em }

img.align-right, .figure.align-right, object.align-right, table.align-right {
  clear: right ;
  float: right ;
  margin-left: 1em }

img.align-center, .figure.align-center, object.align-center {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

table.align-center {
  margin-left: auto;
  margin-right: auto;
}

.align-left {
  text-align: left }

.align-center {
  clear: both ;
  text-align: center }

.align-right {
  text-align: right }

/* reset inner alignment in figures */
div.align-right {
  text-align: inherit }

/* div.align-center * { */
/*   text-align: left } */

.align-top    {
  vertical-align: top }

.align-middle {
  vertical-align: middle }

.align-bottom {
  vertical-align: bottom }

ol.simple, ul.simple {
  margin-bottom: 1em }

ol.arabic {
  list-style: decimal }

ol.loweralpha {
  list-style: lower-alpha }

ol.upperalpha {
  list-style: upper-alpha }

ol.lowerroman {
  list-style: lower-roman }

ol.upperroman {
  list-style: upper-roman }

p.attribution {
  text-align: right ;
  margin-left: 50% }

p.caption {
  font-style: italic }

p.credits {
  font-style: italic ;
  font-size: smaller }

p.label {
  white-space: nowrap }

p.rubric {
  font-weight: bold ;
  font-size: larger ;
  color: maroon ;
  text-align: center }

p.sidebar-title {
  font-family: sans-serif ;
  font-weight: bold ;
  font-size: larger }

p.sidebar-subtitle {
  font-family: sans-serif ;
  font-weight: bold }

p.topic-title {
  font-weight: bold }

pre.address {
  margin-bottom: 0 ;
  margin-top: 0 ;
  font: inherit }

pre.literal-block, pre.doctest-block, pre.math, pre.code {
  margin-left: 2em ;
  margin-right: 2em }

pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}

span.classifier {
  font-family: sans-serif ;
  font-style: oblique }

span.classifier-delimiter {
  font-family: sans-serif ;
  font-weight: bold }

span.interpreted {
  font-family: sans-serif }

span.option {
  white-space: nowrap }

span.pre {
  white-space: pre }

span.problematic {
  color: red }

span.section-subtitle {
  /* font-size relative to parent (h1..h6 element) */
  font-size: 80% }

table.citation {
  border-left: solid 1px gray;
  margin-left: 1px }

table.docinfo {
  margin: 2em 4em }

table.docutils {
  margin-top: 0.5em ;
  margin-bottom: 0.5em }

table.footnote {
  border-left: solid 1px black;
  margin-left: 1px }

table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
  padding-left: 0.5em ;
  padding-right: 0.5em ;
  vertical-align: top }

table.docutils th.field-name, table.docinfo th.docinfo-name {
  font-weight: bold ;
  text-align: left ;
  white-space: nowrap ;
  padding-left: 0 }

/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
  border: 0px;
  border-top: 2px solid;
  border-bottom: 2px solid;
  border-collapse: collapse;
}
table.docutils.booktabs * {
  border: 0px;
}
table.docutils.booktabs th {
  border-bottom: thin solid;
  text-align: left;
}

h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
  font-size: 100% }

ul.auto-toc {
  list-style-type: none }

</style>
</head>
<body>
<div class="document" id="installing-xapian">
<h1 class="title">Installing Xapian</h1>

<div class="section" id="introduction">
<h1>Introduction</h1>
<p>This document is intended to give a quick guide to how to install
Xapian. You can find more detailed instructions in the <tt class="docutils literal">INSTALL</tt> file
which is in top level directory of each source tree.</p>
<p>Xapian can be built on UNIX systems (including macOS), and also
Microsoft Windows systems using GCC with mingw or cygwin, or MSVC.</p>
</div>
<div class="section" id="packaged-binary-versions">
<h1>Packaged binary versions</h1>
<p>Pre-built Xapian packages are available for a number of platforms,
including most of the popular Linux distributions and BSD variants, and
also Cygwin and MSVC. If you are using such a platform, you'll probably
find it easiest to use pre-built packages - it saves having to compile
by hand and you'll generally get updates automatically.</p>
<p>There are some links on our <a class="reference external" href="https://xapian.org/download">download
page</a> but it's likely that Xapian packages
are available for platforms we aren't aware of. Feel free to let us know
and we'll add a link.</p>
<p>In some cases, the version packaged may be rather old, in which case you
can either request the packager to update, or build from source. If you
find we're linking to a package which isn't being updated, please let us
know so we can remove the link.</p>
</div>
<div class="section" id="installing-from-source">
<h1>Installing from Source</h1>
<div class="section" id="download">
<h2>Download</h2>
<p>The first step is to obtain a copy of the software from the <a class="reference external" href="https://xapian.org/download">Xapian
download page</a>.</p>
</div>
<div class="section" id="unpacking">
<h2>Unpacking</h2>
<p>Use the usual tools to unpack the archives. For example, on a Linux
system:</p>
<pre class="literal-block">
tar xf xapian-core-&lt;versionnumber&gt;.tar.xz
tar xf xapian-omega-&lt;versionnumber&gt;.tar.xz
tar xf xapian-bindings-&lt;versionnumber&gt;.tar.xz
</pre>
<p>If tar on your system doesn't support xz decompression, you can instead use:</p>
<pre class="literal-block">
xz -dc xapian-core-&lt;versionnumber&gt;.tar.xz|tar xf -
xz -dc xapian-omega-&lt;versionnumber&gt;.tar.xz|tar xf -
xz -dc xapian-bindings-&lt;versionnumber&gt;.tar.xz|tar xf -
</pre>
<p>These commands should unpack the archives into separate subdirectories
(<tt class="docutils literal"><span class="pre">xapian-core-&lt;versionnumber&gt;</span></tt>, <tt class="docutils literal"><span class="pre">xapian-omega-&lt;versionnumber&gt;</span></tt> and
<tt class="docutils literal"><span class="pre">xapian-bindings-&lt;versionnumber&gt;</span></tt>).</p>
</div>
<div class="section" id="configuring-and-building-the-xapian-library">
<h2>Configuring and building the Xapian library</h2>
<p>For full details of the different options available when configuring and
building, read the file &quot;INSTALL&quot; in the top level directory of your
newly unpacked source tree. But in many cases, the following quick
summary is all you need to know.</p>
<p>Each directory contains a <tt class="docutils literal">configure</tt> script which checks various
features of your system. Assuming this runs successfully, you can then
run <tt class="docutils literal">make</tt> to build the software, and <tt class="docutils literal">make install</tt> to actually
install it. By default, the software installs under <tt class="docutils literal">/usr/local</tt>, but
you can change this by passing <tt class="docutils literal"><span class="pre">--prefix=/path/to/install</span></tt> to
<tt class="docutils literal">configure</tt>. So for example, you might use the following series of
commands to build and install xapian-core under <tt class="docutils literal">/opt</tt>:</p>
<pre class="literal-block">
cd xapian-core-&lt;version&gt;
./configure --prefix=/opt
make
sudo make install
</pre>
<p>If you don't have root access to install Xapian, you can specify a
prefix in your home directory, for example:</p>
<pre class="literal-block">
./configure --prefix=/home/jenny/xapian-install
</pre>
</div>
<div class="section" id="configuring-and-building-omega">
<h2>Configuring and building Omega</h2>
<p>Omega can be built in almost exactly the same way as the core library.
Omega's <tt class="docutils literal">configure</tt> script will try to locate your Xapian installation
by looking for the <tt class="docutils literal"><span class="pre">xapian-config</span></tt> script, which is installed as
<tt class="docutils literal"><span class="pre">&lt;prefix&gt;/bin/xapian-config</span></tt>. If <tt class="docutils literal"><span class="pre">&lt;prefix&gt;/bin/xapian-config</span></tt> isn't
on your <tt class="docutils literal">PATH</tt>, or you have multiple installations of Xapian (perhaps
a debug and non-debug build, or two different versions), you can specify
a <tt class="docutils literal"><span class="pre">xapian-config</span></tt> to use by passing <tt class="docutils literal">XAPIAN_CONFIG</tt> on the configure
command line, as shown below:</p>
<pre class="literal-block">
cd xapian-omega-&lt;version&gt;
./configure --prefix=/opt XAPIAN_CONFIG=/opt/bin/xapian-config
make
sudo make install
</pre>
<p>Note that we use GNU libtool, which will set the runtime library search
path if your Xapian installation isn't in the dynamic linker search
path, so there's no need to mess around with setting
<tt class="docutils literal">LD_LIBRARY_PATH</tt>.</p>
</div>
<div class="section" id="configuring-and-building-xapian-bindings">
<h2>Configuring and building Xapian-bindings</h2>
<p>Xapian-bindings is built much like Omega. One thing to be aware of is
that by default we install the built bindings where they need to go to
work without further intervention, so they may get installed under
<tt class="docutils literal">/usr</tt> even if the prefix is elsewhere. See the <tt class="docutils literal">INSTALL</tt> file for
xapian-bindings for details of how you can override this, and what steps
you'll need to take to run scripts which use the bindings if you do.</p>
</div>
<div class="section" id="building-from-git">
<h2>Building from git</h2>
<p>If you wish to help develop Xapian, read <a class="reference external" href="https://xapian.org/bleeding">how to build from the Xapian
git repository</a>.</p>
</div>
</div>
</div>
</body>
</html>
